package com.lingxu.module.database.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.apache.ibatis.type.ClobTypeHandler;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * @Description: 模型运行记录
 * @Author: 闫世杰
 * @Date:   2023-08-04
 * @Version: V1.0.1
 */
@Data
@TableName("T_MODEL_RUN_RECORD")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="T_MODEL_RUN_RECORD对象", description="模型运行记录")
public class ModelRun implements Serializable{

	/**主键*/
	@TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键")
	private String id;
	/**模型id*/
    @ApiModelProperty(value = "模型id")
	private String modelid;
	/**用户id*/
    @ApiModelProperty(value = "用户id")
	private String userid;
	/**起始时间*/
    @ApiModelProperty(value = "起始时间")
	private String starttime;
	/**耗时(s)*/
    @ApiModelProperty(value = "耗时(s)")
	private Integer consumetime;
	/**结束时间*/
    @ApiModelProperty(value = "结束时间")
	private String endtime;
	/**结果表*/
    @ApiModelProperty(value = "结果表")
	private String resulttable;
	/**结果记录数*/
    @ApiModelProperty(value = "结果记录数")
	private Integer resulttotal;
	/**可视化展示配置*/
    @ApiModelProperty(value = "可视化展示配置")
	private String visualconfig;
	/**01-分析模型-结果列表展示  02-分析模型-结果图表展示 03-算法训练  04-算法预测  05-算法训练+算法预测*/
    @ApiModelProperty(value = "01-分析模型-结果列表展示  02-分析模型-结果图表展示 03-算法训练  04-算法预测  05-算法训练+算法预测")
	private String runtype;
	/**状态 01:成功 02:失败 03:运行中 04:强制结束*/
    @ApiModelProperty(value = "状态 01:成功 02:失败 03:运行中 04:强制结束")
	private String runstatus;
	/**运行进度 1 开始执行 2 模型加载 3 模型解析 4 模型运算 5 执行结束*/
    @ApiModelProperty(value = "运行进度 1 开始执行 2 模型加载 3 模型解析 4 模型运算 5 执行结束")
	private String runprocess;
	/**运行日志*/
    @ApiModelProperty(value = "运行日志")
	private java.sql.Clob runlogs;
	/**presto query id*/
    @ApiModelProperty(value = "presto query id")
	private String queryid;
	/**运行结果字段 json信息*/
    @ApiModelProperty(value = "运行结果字段 json信息")
	@TableField(typeHandler = ClobTypeHandler.class)
	private String resultcolumns;
	/**备注信息*/
    @ApiModelProperty(value = "备注信息")
	private String remark;
	/**红名单数据量*/
    @ApiModelProperty(value = "红名单数据量")
	private String redtotal;
	/**红名单数据查看申请时间*/
    @ApiModelProperty(value = "红名单数据查看申请时间")
	private String applytime;
	/**红名单数据查看申请事由*/
    @ApiModelProperty(value = "红名单数据查看申请事由")
	private String applyreason;
	/**红名单数据查看审批状态 0审批中 1审批通过 2审批不通过*/
    @ApiModelProperty(value = "红名单数据查看审批状态 0审批中 1审批通过 2审批不通过")
	private String approvestate;
	/**红名单数据查看审批时间*/
    @ApiModelProperty(value = "红名单数据查看审批时间")
	private String approvetime;
	/**红名单数据查看审批意见*/
    @ApiModelProperty(value = "红名单数据查看审批意见")
	private String approveopinion;
	/**申请人id*/
    @ApiModelProperty(value = "申请人id")
	private String applyuserid;
	/**申请人姓名*/
    @ApiModelProperty(value = "申请人姓名")
	private String applyusername;
	/**审批人id*/
    @ApiModelProperty(value = "审批人id")
	private String approveuserid;
	/**审批人姓名*/
    @ApiModelProperty(value = "审批人姓名")
	private String approveusername;
	/**数据名称*/
    @ApiModelProperty(value = "数据名称")
	private String dataname;
	/**数据范围*/
    @ApiModelProperty(value = "数据范围")
	private String datarange;
	/**数据调用事由*/
    @ApiModelProperty(value = "数据调用事由")
	private String datareason;
	/**申请室部分管领导姓名*/
    @ApiModelProperty(value = "申请室部分管领导姓名")
	private String deptleadername;
	/**申请室部分管领导意见*/
    @ApiModelProperty(value = "申请室部分管领导意见")
	private String deptleaderopinion;
	/**申请室部分管领导意见时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "申请室部分管领导意见时间")
	private Date deptleadertime;
	/**上传文件*/
    @ApiModelProperty(value = "上传文件")
	private String files;
	/**信息技术中心分管领导姓名*/
    @ApiModelProperty(value = "信息技术中心分管领导姓名")
	private String infoleadername;
	/**信息技术中心分管领导意见*/
    @ApiModelProperty(value = "信息技术中心分管领导意见")
	private String infoleaderopinion;
	/**信息技术中心分管领导意见时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "信息技术中心分管领导意见时间")
	private Date infoleadertime;
	/**承诺人*/
    @ApiModelProperty(value = "承诺人")
	private String promiser;
	/**承诺时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "承诺时间")
	private Date promisertime;
	/**申请部门名称*/
    @ApiModelProperty(value = "申请部门名称")
	private String deptname;

	/**
	 * 承办部门
	 */
	private String undertakeDeptId;
}
